#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define debug(x) cerr<<#x<<':'<<x<<endl
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
const int N=4e5+5;
int n;
int a[N];
int tot;
map<int,int> cnt;
struct node{
    int l,r;
}q[N];
void del(int x){
    cnt[x]=0;
    for(int i=1;i<=tot;i++){
        if(a[i]==x){
            for(int j=i;j<tot;j++) a[j]=a[j+1];
        }
    }tot--;
}
void add(int x){
    cnt[x]=1;
    int p=lower_bound(a+1,a+tot+1,x)-a;
    if(p>tot){
        a[++tot]=x;
        return;
    }
    for(int i=tot;i>=p;i--) a[i+1]=a[i];
    a[p]=x;tot++;
}
signed main(){
	freopen("kte.in","r",stdin);
	freopen("kte.out","w",stdout);
    IOS;
    cin>>n;
    for(int i=1,x;i<=n;i++){
        cin>>x;
        if(cnt[x]) del(x);
        else add(x);
        int mi=0,mx=0;
        int l=1,r=tot,ans=0;
        int top=0;
        while(l<=tot){
            mi+=a[l],mx+=a[r];
            q[++top].l=mi,q[top].r=mx-1;
            l++,r--;
        }
        int lst=q[1].l;
        for(int j=2;j<=top;j++){
            if(q[j].l<=q[j-1].r) continue;
            ans+=q[j-1].r-lst+1;
            lst=q[j].l;
        }
        cout<<ans+q[top].r-lst+1<<endl;
    }
    return 0;
}